import { _decorator, Component, Node, Sprite, resources, SpriteFrame, UITransform, Layers } from 'cc';
const { ccclass, property } = _decorator;
import Levels from "../../Levels";
import {createUINode, randomByRange} from "../../Utils";
import {TileManager} from "./TileManager";
import DataManager from "../../Runtime/DataManager";
import ResourceManager from "../../Runtime/ResourceManager";

@ccclass('TileMapManager')
export class TileMapManager extends Component {
    async init() {
        const mapInfo = DataManager.Instance.mapInfo;
        const spriteFrames = await ResourceManager.Instance.loadDir('texture/tile');
        DataManager.Instance.tileInfo = [];
        for (let i = 0; i < mapInfo.length; i++) {
            DataManager.Instance.tileInfo[i] = [];
            const column = mapInfo[i];
            for (let j = 0; j < column.length; j++) {
                const item = column[j];
                if(item.src == null || item.type == null)
                    continue;

                const node = createUINode();

                let number = item.src;
                if((number === 1 || number === 5 || number === 9) && i%2 === 0 && j%2 === 0) {
                    number += randomByRange(0, 4);
                }

                const imgSrc = `tile (${number})`;
                const spriteFrame = spriteFrames.find(o => o.name === imgSrc) || spriteFrames[0];
                const tileManager = node.addComponent(TileManager);
                const type = item.type;
                tileManager.init(type, spriteFrame, i, j);
                DataManager.Instance.tileInfo[i][j] = tileManager;

                node.setParent(this.node);
            }
        }
        // console.log(level);
    }


}

